[[トップ>FrontPage]] > [[MAP作成]] > [[トリガーエディタ]] > [[Jass Script]] > [[Jass Script/チュートリアル]] > function [[トップ>FrontPage]] > [[MAP作成]] > [[トリガーエディタ]] > [[Jass Script]] > [[Jass講座]] > function ~ ~ ''function''とは関数を指す。Jass Scriptでは、戻り値を持つ関数も持たない関数もすべて''function''で定義される。 複数回行う処理をひとつの''function''にまとめておけば便利。普通、これをどんどん作っていく。 &color(red){''Jass NewGenの導入が前提''};です。導入せずとも利用できる内容も一部ありますが、あったほうが断然有利です。 ---- #contents ---- *使い方 [#ud8c9920] functionは、以下のように定義される。 function HelloWorld takes nothing returns nothing call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Hello, world!") endfunction 定義された関数は、以下のようにしていつでも呼び出すことができる。 call HelloWorld() *注意点 [#qfc49dd8] カスタムスクリプトで作成されたJass Scriptは、最終的にひとつのテキストファイルにまとめられる。 このとき、テキストの''下部で定義したfunctionは、それより上部でcallすることができない''。 以下のスクリプトの場合、エラーが出る。 function initGame takes nothing returns nothing call CantCallMe() endfunction function CantCallMe takes nothing returns nothing //この関数は initGame より下流に位置するので、 //initGame内から call することはできない。 //この例のように記載すると、MAP保存時にエラーが出て、保存できない。 endfunction ひとつのページ内であれば注意して防げる問題ではあるが、複数のページにわたって呼び出されることのある function を作成する場合は、MAP保存時にどのページが上にくるかによってエラーが出るかどうかが変わる。 複数のページで利用する関数を定義する場合は、[[library>Jass Script/モジュール、クラス#library]] を利用すると便利。 *引数 [#tf13559e] takes 〜 returns の間に、&color(lightblue){''変数型''}; '変数名', &color(lightblue){''変数型''}; '変数名', .... の書式で記入する。 記入例: function HelloWorldtoPlayer takes player whichPlayer returns nothing call DisplayTextToPlayer(whichPlayer,0,0,"Hello, world!") endfunction *戻り値 [#e2ef32a2] returns 〜 に、変数型で記入。returnの位置で関数の処理は終了し、指定された形を返す。 例: function GetMessage takes nothing returns string return "Hello, world!" endfunction function HelloWorldtoPlayer takes player whichPlayer returns nothing call DisplayTextToPlayer(whichPlayer,0,0,GetMessage()) endfunction |